home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / Folders.a < prev    next >
Encoding:
Text File  |  1998-02-12  |  12.0 KB  |  354 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Folders.a
  3. ;
  4. ;    Contains:    Folder Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    Mac OS 8
  7. ;                Release:    Universal Interfaces 3.1
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__FOLDERS__') = 'UNDEFINED' THEN
  19. __FOLDERS__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.  
  25.  
  26. kOnSystemDisk                    EQU        -32768                ; previously was 0x8000 but that is an unsigned value whereas vRefNum is signed
  27.  
  28. kCreateFolder                    EQU        1
  29. kDontCreateFolder                EQU        0
  30.  
  31. kSystemFolderType                EQU        'macs'                ; the system folder 
  32. kDesktopFolderType                EQU        'desk'                ; the desktop folder; objects in this folder show on the desk top. 
  33. kTrashFolderType                EQU        'trsh'                ; the trash folder; objects in this folder show up in the trash 
  34. kWhereToEmptyTrashFolderType    EQU        'empt'                ; the "empty trash" folder; Finder starts empty from here down 
  35. kPrintMonitorDocsFolderType        EQU        'prnt'                ; Print Monitor documents 
  36. kStartupFolderType                EQU        'strt'                ; Finder objects (applications, documents, DAs, aliases, to...) to open at startup go here 
  37. kShutdownFolderType                EQU        'shdf'                ; Finder objects (applications, documents, DAs, aliases, to...) to open at shutdown go here 
  38. kAppleMenuFolderType            EQU        'amnu'                ; Finder objects to put into the Apple menu go here 
  39. kControlPanelFolderType            EQU        'ctrl'                ; Control Panels go here (may contain INITs) 
  40. kExtensionFolderType            EQU        'extn'                ; System extensions go here 
  41. kFontsFolderType                EQU        'font'                ; Fonts go here 
  42. kPreferencesFolderType            EQU        'pref'                ; preferences for applications go here 
  43. kTemporaryFolderType            EQU        'temp'                ; temporary files go here (deleted periodically, but don't rely on it.) 
  44. ;    Note:     The FindFolder trap was not implemented until System 7.  If you want to call FindFolder
  45. ;            while running on System 6 machines, then define USE_FINDFOLDER_GLUE and link with
  46. ;            Interface.o which contains glue to implement FindFolder on pre-System 7 machines.
  47. ;
  48.  
  49.     IF &TYPE('USE_FINDFOLDER_GLUE') <> 'UNDEFINED' THEN
  50. ;
  51. ; pascal OSErr FindFolder(short vRefNum, OSType folderType, Boolean createFolder, short *foundVRefNum, long *foundDirID)
  52. ;
  53.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  54.         IMPORT_CFM_FUNCTION FindFolder
  55.     ENDIF
  56.  
  57.     ELSE
  58. ;
  59. ; pascal OSErr FindFolder(short vRefNum, OSType folderType, Boolean createFolder, short *foundVRefNum, long *foundDirID)
  60. ;
  61.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  62.         Macro
  63.         _FindFolder
  64.             moveq               #0,D0
  65.             dc.w                $A823
  66.         EndM
  67.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  68.         IMPORT_CFM_FUNCTION FindFolder
  69.     ENDIF
  70.  
  71.     ENDIF
  72. ;
  73. ; pascal OSErr ReleaseFolder(short vRefNum, OSType folderType)
  74. ;
  75.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  76.         Macro
  77.         _ReleaseFolder
  78.             moveq               #11,D0
  79.             dc.w                $A823
  80.         EndM
  81.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  82.         IMPORT_CFM_FUNCTION ReleaseFolder
  83.     ENDIF
  84.  
  85.  
  86.     IF ¬ TARGET_OS_MAC THEN
  87. ;  Since non-mac targets don't know about VRef's or DirID's, the Ex version returns
  88. ;   the found folder path.
  89.  
  90. ;
  91. ; extern OSErr FindFolderEx(short vRefNum, OSType folderType, Boolean createFolder, short *foundVRefNum, long *foundDirID, char *foundFolder)
  92. ;
  93.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  94.         IMPORT_CFM_FUNCTION FindFolderEx
  95.     ENDIF
  96.  
  97.     ENDIF
  98. ; *****************************************
  99. ;  Extensible Folder Manager declarations 
  100. ; *****************************************
  101.  
  102. ; ***************************
  103. ;  Folder Manager constants 
  104. ; ***************************
  105.  
  106.  
  107. kExtensionDisabledFolderType    EQU        'extD'
  108. kControlPanelDisabledFolderType    EQU        'ctrD'
  109. kSystemExtensionDisabledFolderType EQU    'macD'
  110. kStartupItemsDisabledFolderType    EQU        'strD'
  111. kShutdownItemsDisabledFolderType EQU    'shdD'
  112. kApplicationsFolderType            EQU        'apps'
  113. kDocumentsFolderType            EQU        'docs'
  114.  
  115.                                                             ; new constants 
  116. kVolumeRootFolderType            EQU        'root'                ; root folder of a volume 
  117. kChewableItemsFolderType        EQU        'flnt'                ; items deleted at boot 
  118. kApplicationSupportFolderType    EQU        'asup'                ; third-party items and folders 
  119. kTextEncodingsFolderType        EQU        'ƒtex'                ; encoding tables 
  120. kStationeryFolderType            EQU        'odst'                ; stationery 
  121. kOpenDocFolderType                EQU        'odod'                ; OpenDoc root 
  122. kOpenDocShellPlugInsFolderType    EQU        'odsp'                ; OpenDoc Shell Plug-Ins in OpenDoc folder 
  123. kEditorsFolderType                EQU        'oded'                ; OpenDoc editors in MacOS Folder 
  124. kOpenDocEditorsFolderType        EQU        'ƒodf'                ; OpenDoc subfolder of Editors folder 
  125. kOpenDocLibrariesFolderType        EQU        'odlb'                ; OpenDoc libraries folder 
  126. kGenEditorsFolderType            EQU        'ƒedi'                ; CKH general editors folder at root level of Sys folder 
  127. kHelpFolderType                    EQU        'ƒhlp'                ; CKH help folder currently at root of system folder 
  128. kInternetPlugInFolderType        EQU        'ƒnet'                ; CKH internet plug ins for browsers and stuff 
  129. kModemScriptsFolderType            EQU        'ƒmod'                ; CKH modem scripts, get 'em OUT of the Extensions folder 
  130. kPrinterDescriptionFolderType    EQU        'ppdf'                ; CKH new folder at root of System folder for printer descs. 
  131. kPrinterDriverFolderType        EQU        'ƒprd'                ; CKH new folder at root of System folder for printer drivers 
  132. kScriptingAdditionsFolderType    EQU        'ƒscr'                ; CKH at root of system folder 
  133. kSharedLibrariesFolderType        EQU        'ƒlib'                ; CKH for general shared libs. 
  134. kVoicesFolderType                EQU        'fvoc'                ; CKH macintalk can live here 
  135. kControlStripModulesFolderType    EQU        'sdev'                ; CKH for control strip modules 
  136. kAssistantsFolderType            EQU        'astƒ'                ; SJF for Assistants (MacOS Setup Assistant, etc) 
  137. kUtilitiesFolderType            EQU        'utiƒ'                ; SJF for Utilities folder 
  138. kAppleExtrasFolderType            EQU        'aexƒ'                ; SJF for Apple Extras folder 
  139. kContextualMenuItemsFolderType    EQU        'cmnu'                ; SJF for Contextual Menu items 
  140. kMacOSReadMesFolderType            EQU        'morƒ'                ; SJF for MacOS ReadMes folder 
  141. kALMModulesFolderType            EQU        'walk'                ; EAS for Location Manager Module files except type 'thng' (within kExtensionFolderType) 
  142. kALMPreferencesFolderType        EQU        'trip'                ; EAS for Location Manager Preferences (within kPreferencesFolderType; contains kALMLocationsFolderType) 
  143. kALMLocationsFolderType            EQU        'fall'                ; EAS for Location Manager Locations (within kALMPreferencesFolderType) 
  144. kColorSyncProfilesFolderType    EQU        'prof'                ; for ColorSync™ Profiles 
  145. kThemesFolderType                EQU        'thme'                ; for Theme data files 
  146. kFavoritesFolderType            EQU        'favs'                ; Favorties folder for Navigation Services 
  147.  
  148. ;  FolderDescFlags values 
  149.  
  150. kCreateFolderAtBoot                EQU        $00000002
  151. kFolderCreatedInvisible            EQU        $00000004
  152. kFolderCreatedNameLocked        EQU        $00000008
  153. ; typedef UInt32                         FolderDescFlags
  154.  
  155. ;  FolderClass values 
  156.  
  157. kRelativeFolder                    EQU        'relf'
  158. kSpecialFolder                    EQU        'spcf'
  159. ; typedef OSType                         FolderClass
  160.  
  161. ;  special folder locations 
  162.  
  163. kBlessedFolder                    EQU        'blsf'
  164. kRootFolder                        EQU        'rotf'
  165. ; typedef OSType                         FolderType
  166.  
  167. ; typedef OSType                         FolderLocation
  168.  
  169.  
  170. FolderDesc                RECORD 0
  171. descSize                 ds.l    1                ; offset: $0 (0)
  172. foldType                 ds.l    1                ; offset: $4 (4)
  173. flags                     ds.l    1                ; offset: $8 (8)
  174. foldClass                 ds.l    1                ; offset: $C (12)
  175. foldLocation             ds.l    1                ; offset: $10 (16)
  176. badgeSignature             ds.l    1                ; offset: $14 (20)
  177. badgeType                 ds.l    1                ; offset: $18 (24)
  178. reserved                 ds.l    1                ; offset: $1C (28)
  179. name                     ds        StrFileName        ; offset: $20 (32)        ;  Str63 on MacOS
  180. sizeof                     EQU *                    ; size:   $60 (96)
  181.                         ENDR
  182. ; typedef struct FolderDesc *            FolderDescPtr
  183.  
  184.  
  185. ; typedef UInt32                         RoutingFlags
  186.  
  187. FolderRouting            RECORD 0
  188. descSize                 ds.l    1                ; offset: $0 (0)
  189. fileType                 ds.l    1                ; offset: $4 (4)
  190. routeFromFolder             ds.l    1                ; offset: $8 (8)
  191. routeToFolder             ds.l    1                ; offset: $C (12)
  192. flags                     ds.l    1                ; offset: $10 (16)
  193. sizeof                     EQU *                    ; size:   $14 (20)
  194.                         ENDR
  195. ; typedef struct FolderRouting *        FolderRoutingPtr
  196.  
  197. ;  routing constants 
  198. ; **************************
  199. ;  Folder Manager routines 
  200. ; **************************
  201. ;  Folder Manager administration routines 
  202. ;
  203. ; pascal OSErr AddFolderDescriptor(FolderType foldType, FolderDescFlags flags, FolderClass foldClass, FolderLocation foldLocation, OSType badgeSignature, OSType badgeType, ConstStrFileNameParam name, Boolean replaceFlag)
  204. ;
  205.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  206.         Macro
  207.         _AddFolderDescriptor
  208.             moveq               #32,D0
  209.             dc.w                $A823
  210.         EndM
  211.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  212.         IMPORT_CFM_FUNCTION AddFolderDescriptor
  213.     ENDIF
  214.  
  215. ;
  216. ; pascal OSErr GetFolderDescriptor(FolderType foldType, Size descSize, FolderDesc *foldDesc)
  217. ;
  218.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  219.         Macro
  220.         _GetFolderDescriptor
  221.             moveq               #35,D0
  222.             dc.w                $A823
  223.         EndM
  224.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  225.         IMPORT_CFM_FUNCTION GetFolderDescriptor
  226.     ENDIF
  227.  
  228. ;
  229. ; pascal OSErr GetFolderTypes(UInt32 requestedTypeCount, UInt32 *totalTypeCount, FolderType *theTypes)
  230. ;
  231.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  232.         Macro
  233.         _GetFolderTypes
  234.             moveq               #36,D0
  235.             dc.w                $A823
  236.         EndM
  237.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  238.         IMPORT_CFM_FUNCTION GetFolderTypes
  239.     ENDIF
  240.  
  241. ;
  242. ; pascal OSErr RemoveFolderDescriptor(FolderType foldType)
  243. ;
  244.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  245.         Macro
  246.         _RemoveFolderDescriptor
  247.             moveq               #33,D0
  248.             dc.w                $A823
  249.         EndM
  250.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  251.         IMPORT_CFM_FUNCTION RemoveFolderDescriptor
  252.     ENDIF
  253.  
  254. ;  legacy routines 
  255. ;
  256. ; pascal OSErr GetFolderName(short vRefNum, OSType foldType, short *foundVRefNum, StrFileName name)
  257. ;
  258.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  259.         Macro
  260.         _GetFolderName
  261.             moveq               #14,D0
  262.             dc.w                $A823
  263.         EndM
  264.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  265.         IMPORT_CFM_FUNCTION GetFolderName
  266.     ENDIF
  267.  
  268. ;  routing routines 
  269. ;
  270. ; pascal OSErr AddFolderRouting(OSType fileType, FolderType routeFromFolder, FolderType routeToFolder, RoutingFlags flags, Boolean replaceFlag)
  271. ;
  272.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  273.         Macro
  274.         _AddFolderRouting
  275.             moveq               #38,D0
  276.             dc.w                $A823
  277.         EndM
  278.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  279.         IMPORT_CFM_FUNCTION AddFolderRouting
  280.     ENDIF
  281.  
  282. ;
  283. ; pascal OSErr RemoveFolderRouting(OSType fileType, FolderType routeFromFolder)
  284. ;
  285.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  286.         Macro
  287.         _RemoveFolderRouting
  288.             moveq               #39,D0
  289.             dc.w                $A823
  290.         EndM
  291.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  292.         IMPORT_CFM_FUNCTION RemoveFolderRouting
  293.     ENDIF
  294.  
  295. ;
  296. ; pascal OSErr FindFolderRouting(OSType fileType, FolderType routeFromFolder, FolderType *routeToFolder, RoutingFlags *flags)
  297. ;
  298.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  299.         Macro
  300.         _FindFolderRouting
  301.             moveq               #34,D0
  302.             dc.w                $A823
  303.         EndM
  304.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  305.         IMPORT_CFM_FUNCTION FindFolderRouting
  306.     ENDIF
  307.  
  308. ;
  309. ; pascal OSErr GetFolderRoutings(UInt32 requestedRoutingCount, UInt32 *totalRoutingCount, Size routingSize, FolderRouting *theRoutings)
  310. ;
  311.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  312.         Macro
  313.         _GetFolderRoutings
  314.             moveq               #30,D0
  315.             dc.w                $A823
  316.         EndM
  317.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  318.         IMPORT_CFM_FUNCTION GetFolderRoutings
  319.     ENDIF
  320.  
  321. ;
  322. ; pascal OSErr InvalidateFolderDescriptorCache(short vRefNum, long dirID)
  323. ;
  324.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  325.         Macro
  326.         _InvalidateFolderDescriptorCache
  327.             moveq               #37,D0
  328.             dc.w                $A823
  329.         EndM
  330.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  331.         IMPORT_CFM_FUNCTION InvalidateFolderDescriptorCache
  332.     ENDIF
  333.  
  334. ;
  335. ; pascal OSErr IdentifyFolder(short vRefNum, long dirID, FolderType *foldType)
  336. ;
  337.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  338.         Macro
  339.         _IdentifyFolder
  340.             moveq               #31,D0
  341.             dc.w                $A823
  342.         EndM
  343.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  344.         IMPORT_CFM_FUNCTION IdentifyFolder
  345.     ENDIF
  346.  
  347.  
  348.  
  349.  
  350.     ENDIF ; __FOLDERS__ 
  351.  
  352.